package com.kakarote.hrm.entity.VO;

import com.alibaba.fastjson.JSONObject;
import com.kakarote.hrm.entity.PO.*;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.List;

/**
 * @Author 92487
 * @Date 2024/3/16 16:16
 */
@Data
public class EmployeeElasticSearchVo {

    @ApiModelProperty(value = "员工id")
    private Long employeeId;

    @ApiModelProperty(value = "姓名")
    private String employeeName;

    @ApiModelProperty(value = "性别")
    private Integer sex;

    @ApiModelProperty(value = "性别")
    private String sexCn;

    @ApiModelProperty(value = "任职机构编号")
    private Long orgId;

    @ApiModelProperty(value = "任职机构名称")
    private String orgName;

    @ApiModelProperty(value = "任职部门编号")
    private Long deptId;

    @ApiModelProperty(value = "任职部门")
    private String deptName;

    @ApiModelProperty(value = "职务")
    private String jobTitle;

    @ApiModelProperty(value = "职位层级")
    private String jobLevel;

    @ApiModelProperty(value = "政治面貌")
    private String polId;

    @ApiModelProperty(value = "在岗状态")
    private String postStatus;

    @ApiModelProperty(value = "用工形式")
    private String workForms;

    @ApiModelProperty(value = "手机")
    private String mobile;

    @ApiModelProperty(value = "身份证号")
    private String idNumber;

    @ApiModelProperty(value = "参加工作时间")
    private String joinWorkTime;

    @ApiModelProperty(value = "入集团时间")
    private String joinCompanyTime;

    @ApiModelProperty(value = "入党日期")
    private String polTime;

    @ApiModelProperty(value = "出生日期")
    private String dateOfBirth;

    @ApiModelProperty(value = "婚姻状况")
    private String marriageName;

    @ApiModelProperty(value = "健康状况")
    private String healthName;

    @ApiModelProperty(value = "民族")
    private String nation;

    @ApiModelProperty(value = "籍贯")
    private String nativePlace;

    @ApiModelProperty(value = "出生地")
    private String birthPlace;

    @ApiModelProperty(value = "身高（cm）")
    private String height;

    @ApiModelProperty(value = "最高学位")
    private String highestDegree;

    @ApiModelProperty(value = "最高职称级别")
    private String highestTechLevel;

    @ApiModelProperty(value = "最高学历")
    private Integer highestEducation;

    @ApiModelProperty(value = "最高学历")
    private String highestEducationCn;

    @ApiModelProperty(value = "驾驶执照类别")
    private String driverLicenseName;

    @ApiModelProperty(value = "宅电")
    private String homePhone;

    @ApiModelProperty(value = "兴趣爱好")
    private String interestName;

    @ApiModelProperty(value = "邮政编码")
    private String zipCode;

    @ApiModelProperty(value = "熟悉专业有何特长")
    private String speciality;

    @ApiModelProperty(value = "紧急联系人及电话")
    private String emergencyContactPhone;

    @ApiModelProperty(value = "任职日期")
    private String dateOfEmployment;

    @ApiModelProperty(value = "任职级日期")
    private String dateOfEmploymentLevel;

    @ApiModelProperty(value = "入职渠道")
    private String channelName;

    @ApiModelProperty(value = "入司时间")
    private String companyAgeStartTime;

    @ApiModelProperty(value = "外语水平")
    private String languageLevelName;

    @ApiModelProperty(value = "备注")
    private String remarks;

    @ApiModelProperty(value = "现居住地")
    private String currentResidence;

    @ApiModelProperty(value = "家庭住址")
    private String homePlace;

    @ApiModelProperty(value = "员工归属")
    private Integer source;

    @ApiModelProperty(value = "员工归属名称")
    private String sourceCn;

    @ApiModelProperty(value = "试用期")
    private Integer probation;

    @ApiModelProperty(value = "试用期名称")
    private String probationCn;

    @ApiModelProperty(value = "工作地点")
    private String workAddress;

    @ApiModelProperty(value = "入职日期")
    private String entryTime;

    @ApiModelProperty(value = "转正日期")
    private String becomeTime;

    @ApiModelProperty(value = "年龄")
    private Integer age;

    @ApiModelProperty(value = "证件类型 1 身份证 2 港澳通行证 3 台湾通行证 4 护照 5 其他")
    private Integer idType;

    @ApiModelProperty(value = "国家地区")
    private String country;

    @ApiModelProperty(value = "邮箱")
    private String email;

    @ApiModelProperty(value = "生日 示例：0323")
    private String birthday;

    @ApiModelProperty(value = "户籍地址")
    private String address;

    @ApiModelProperty(value = "入职状态")
    private Integer entryStatus;

    @ApiModelProperty(value = "职位")
    private String post;

    @ApiModelProperty(value = "岗位职级")
    private String postLevel;

    @ApiModelProperty(value = "员工状态")
    private Integer status;

    @ApiModelProperty(value = "排序号")
    private Integer sortId;

    @ApiModelProperty("兼职信息")
    List<ConcurrentPostVO> concurrentPostVOList;

    @ApiModelProperty("离职信息")
    private HrmEmployeeQuitInfo employeeQuitInfo;

    @ApiModelProperty("教育经历")
    private List<HrmEmployeeEducationExperience> educationExperienceList;

    @ApiModelProperty("工作经历")
    private List<HrmEmployeeWorkExperience> workExperienceList;

    @ApiModelProperty("职（执）业资格")
    private List<HrmEmployeeCertificate> certificateList;

    @ApiModelProperty("专业技术职务")
    private List<HrmEmployeeTechnical> technicalList;

    @ApiModelProperty("专业技术工人证书")
    private List<HrmEmployeeSpecialWorker> specialWorkerList;

    @ApiModelProperty("家庭成员及主要社会关系")
    private List<JSONObject> hrmEmployeeContacts;
}
